/**
 * 下载文件请求
 */

import { baseURL } from './http';

// 是否显示重新下载弹窗
export let isReDownload = false;

/**
 * 下载文件
 * @param {*} url 请求地址
 * @param {*} fileName 文件名称
 */
export function downloadFile(url, fileName) {
    return new Promise((resolve, reject) => {
        const ua = navigator.userAgent.toLowerCase();
        if (ua.match(/micromessenger/)) {
          // 微信内置浏览器，直接跳转真实文件地址
          window.location.href = baseURL + url;
          resolve('跳转下载');
          return;
        }
        const xhr = new XMLHttpRequest();
        xhr.open('GET', baseURL + url, true);
        // 设置响应类型为blob
        xhr.responseType = 'blob';
        xhr.onload = function () {
            if (xhr.status === 200) {
                // 创建blob链接
                const blob = new Blob([xhr.response], {
                    type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
                });
                // 创建下载链接并触发下载
                const a = document.createElement('a');
                const url = URL.createObjectURL(blob);
                a.href = url;
                a.download = fileName;
                document.body.appendChild(a);
                a.click();
                window.URL.revokeObjectURL(url);
                document.body.removeChild(a);
                resolve('下载成功');
            } else {
                reject(new Error('下载失败'));
            }
        };
        xhr.onerror = function () {
            reject(new Error('网络请求失败'));
        };
        // 发送请求
        xhr.send();
    });
} 